package cn.tedu.wms.passport.service;

import cn.tedu.wms.passport.pojo.dto.AdminRoleAddNewDTO;
import cn.tedu.wms.passport.pojo.vo.AdminRoleListItemVO;
import cn.tedu.wms.passport.pojo.vo.AdminRoleStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 处理管理员角色关联的业务接口
 *
 * @author chenliang
 * @version 0.0.1
 */
@Transactional
public interface IAdminRoleService {

    /**
     * 添加管理员角色关联
     *
     * @param adminRoleAddNewDTO 管理员角色关联数据
     */
    void addNew(AdminRoleAddNewDTO adminRoleAddNewDTO);

    /**
     * 批量添加管理员角色关联
     *
     * @param addNewList 管理员角色关联的列表数据
     */
    void insertBatch(List<AdminRoleAddNewDTO> addNewList);

    /**
     * 根据管理员id 删除管理员角色关联数据
     *
     * @param adminId 管理员id
     */
    void deleteById(Long adminId);

    /**
     * 根据id 修改管理员角色关联数据
     *
     * @param adminRoleStandardVO 管理员角色的标准信息
     */
    void updateById(AdminRoleStandardVO adminRoleStandardVO);

    /**
     * 根据管理员id 统计管理员角色关联数据
     *
     * @param adminId 管理员id
     */
    void countByAdminId(Long adminId);

    /**
     * 根据id 查询管理员角色关联数据
     *
     * @param id id
     * @return 返回管理员角色关联匹配的标准信息,如果没有匹配,则返回null
     */
    AdminRoleStandardVO getStandardById(Long id);

    /**
     * 查询管理员角色关联列表
     *
     * @return 管理员角色关联列表
     */
    List<AdminRoleListItemVO> list();


}
